<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <script>
        // 方法调用方式
        function Person() {
            this.age = 20;
        }

        Person.prototype.run = function() {
            console.log(this.age)
        }

        var p1 = new Person();
        p1.run(); // 打印结果：20

        var p2 = {
            height: 180,
            travel: function() {
                console.log(this.height)
            }
        }

        p2.travel(); // 打印结果：180


        var clear = function() {
            console.log(this.length)
        }

        var length = 50;
        var tom = { c: clear, length:100 }
        tom.c(); // 打印结果：100

        // 结论：由于clear()函数被当成tom.c()中方法的形式来调用
        // 所以：该方法内部的this指向调用c()方法的对象，即tom对象
    </script>
</body>
</html>